<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"  
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    template="/plantillas/plantilla-sistema.xhtml">
    <ui:define name="cabecera">
        <title>Gestión de Especímenes</title>
        <link rel="shortcut icon"  href="../../resources/imagenes/favicon.ico" />
    </ui:define>
    <ui:define name="contenido">
        <center>
            <p:panel id="especimenPnl" header="Especímenes" style="width: 950px">
                <h:form id="tablaEspecimenFrm">
                 
                    <p:dataTable id="tablaEspecimen" var="especimen" resizableColumns="true"
                                 paginator="true" paginatorPosition="bottom" rows="10"
                                 value="#{especimenBean.listaEspecimens}"
                                 emptyMessage="No hay registros disponibles.">
                        <p:column headerText="Código">
                            <center>
                                <h:outputText id="codigoTxt" value="#{especimen.codigoespecimen}"/> 
                            </center>
                        </p:column>
                        <p:column headerText="Animal">
                           <center>
                                <h:outputText id="animalTxt" value="#{especimen.animal.nombrecientifico}"/> 
                           </center>
                        </p:column>
                          <p:column headerText="Fecha Recolección">
                                     <center>
                                         <h:outputText id="fecharTxt" value="#{especimen.recoleccion.fecharecoleccion}"/> 
                                     </center>
                                  </p:column>

                        <p:column headerText="Muestras">
                            <center>
                                <h:outputText id="numeromuestrasTxt" value="#{especimen.numeromuestras}"/> 
                            </center>
                        </p:column>
                        
                        <p:column headerText="Determino">
                            <center>
                                <h:outputText id="determinoTxt" value="#{especimen.determino}"/> 
                            </center>
                        </p:column>
                        <p:column headerText="Confirmo">
                            <center>
                                <h:outputText id="confirmoTxt" value="#{especimen.confirmo}"/> 
                            </center>
                        </p:column>
                        <p:column headerText="Ubicación Almacén">
                            <center>
                              <h:outputText id="ubicacionalmacenTxt" value="#{especimen.ubicacionalmacen}"/> 
                            </center>
                        </p:column>
                        <p:column headerText="Fisico" >
                            <p:commandButton id="fisicoBtn"  value="Ver" type="button" />  
                            <p:overlayPanel id="fisicoPnl" for="fisicoBtn" appendToBody="true" showEvent="mouseup"
                                            hideEvent="mouseup" hideEffect="fade" dynamic="true">  
                              <p:dataTable id="tableEntorno" var="entorno"  value="" 
                                             rowKey="" rows="1">  
                                  <p:column headerText="Peso">
                                     <center>
                                         <h:outputText id="pesoTxt" value="#{especimen.peso}"/> 
                                     </center>
                                  </p:column>
                                  <p:column headerText="Sexo"> 
                                      <center>
                                          <h:outputText id="sexoTxt" value="#{especimen.sexo}" />  
                                      </center>
                                 </p:column> 
                                 <p:column headerText="Madurez">
                                     <center>
                                        <h:outputText id="madurezTxt" value="#{especimen.madurez}"/> 
                                     </center>
                                  </p:column>
                                  <p:column headerText="Longitud">
                                     <center>
                                        <h:outputText id="longitudTxt" value="#{especimen.longitud}"/> 
                                     </center>
                                  </p:column>
                                  <p:column headerText="Diametro">
                                    <center>
                                      <h:outputText id="diametroTxt" value="#{especimen.diametro}"/> 
                                    </center>
                                  </p:column>
                                  <p:column headerText="Altura">
                                     <center>
                                        <h:outputText id="alturaTxt" value="#{especimen.altura}"/> 
                                     </center>
                                  </p:column>
                                  <p:column headerText="Textura">
                                    <center>
                                        <h:outputText id="texturaTxt" value="#{especimen.textura}"/> 
                                    </center>
                                  </p:column>
                                  <p:column headerText="Coloración">
                                    <center>
                                        <h:outputText id="coloracionTxt" value="#{especimen.coloracion}"/> 
                                    </center>
                                  </p:column>
                               </p:dataTable>  
                            </p:overlayPanel>
                         </p:column>  
                        
                         <p:column headerText="Descripción" >
                            <p:commandButton id="descripcionBtn"  value="Ver" type="button" />  
                            <p:overlayPanel id="descripcionPnl" for="descripcionBtn" appendToBody="true" showEvent="mouseup"
                                            hideEvent="mouseup" hideEffect="fade" dynamic="true">  
                              <p:dataTable id="tableDescripcion" var="descripcion"  value="" 
                                             rowKey="" rows="1">           
                                    <p:column headerText="Habitat">
                                        <center>
                                            <h:outputText id="habitatTxt" value="#{especimen.habitat}"/> 
                                        </center>
                                    </p:column>
                                    <p:column headerText="Conservación">
                                        <center>
                                           <h:outputText id="tipoconservacionTxt" value="#{especimen.tipoconservacion}"/> 
                                        </center>
                                    </p:column>           
                                    <p:column headerText="Descripción Taxonomia">
                                        <center>
                                            <h:outputText id="descripciontaxonomicaTxt" value="#{especimen.descripciontaxonomica}"/> 
                                        </center>
                                    </p:column>
                                    <p:column headerText="Observación">
                                        <center>
                                            <h:outputText id="observacionTxt" value="#{especimen.observaciones}"/> 
                                        </center>
                                    </p:column>
                                  
                                    <p:column headerText="Estado Muestra">
                                        <center>
                                            <h:outputText id="estadomuestraTxt" value="#{especimen.estadomuestra}"/> 
                                        </center>
                                    </p:column>
                                    <p:column headerText="Estatus Local">
                                        <center>
                                            <h:outputText id="estatuslocalTxt" value="#{especimen.estatuslocal}"/> 
                                        </center>
                                    </p:column>
                               </p:dataTable>  
                            </p:overlayPanel>
                         </p:column>  
                       
                        <p:column headerText="Recolección" >
                            <p:commandButton id="recoleccionBtn"  value="Ver" type="button" />  
                            <p:overlayPanel id="recoleccionPnl" for="recoleccionBtn" appendToBody="true" showEvent="mouseup"
                                            hideEvent="mouseup" hideEffect="fade" dynamic="true">  
                                <p:dataTable id="tableRecoleccion" var="recoleccion"  value="#{especimen}" 
                                             rowKey="" rows="1">  
                                  <p:column headerText="Latitud">
                                     <center>
                                         <h:outputText id="latitudTxt" value="#{especimen.recoleccion.latitud}"/> 
                                     </center>
                                  </p:column>
                                    <p:column headerText="Tipo de Recolección">
                                     <center>
                                         <h:outputText id="tiporecoleccionTxt" value="#{especimen.recoleccion.tiporecoleccion}"/> 
                                     </center>
                                  </p:column>
                                  <p:column headerText="Longitud">
                                     <center>
                                         <h:outputText id="longitudTxt" value="#{especimen.recoleccion.longitud}"/> 
                                     </center>
                                  </p:column>
                                    <p:column headerText="Observaciones">
                                     <center>
                                         <h:outputText id="observacionesTxt" value="#{especimen.recoleccion.observaciones}"/> 
                                     </center>
                                  </p:column>                                    
                               </p:dataTable>  
                            </p:overlayPanel>
                         </p:column>  
                        <p:column headerText="Físico">  
                            <p:rowToggler id="fisico"/>  
                        </p:column>                        
                        
                    </p:dataTable>
                    <p:commandButton id="nuevoBtn" value="Nuevo Especimen"
                                     actionListener="#{especimenBean.prepararAdicion(event)}" 
                                     update=":guardarEspecimenFrm:guardarEspecimenPnl" 
                                     oncomplete="guardarEspecimenWgt.show()" 
                                     icon="ui-icon-document"/>
                  
                </h:form>
            </p:panel>
        </center>
    </ui:define>
    <ui:define name="extra">
        
    </ui:define>
    
    <ui:define name="extra">
        <p:dialog id="guardarEspecimenDlg" header="Guardar Especimen" widgetVar="guardarEspecimenWgt" 
                    resizable="false" modal="true" showEffect="false" width="850">
            <h:form id="guardarEspecimenFrm">
                <h:panelGrid id="guardarEspecimenPnl" columns="4" style="margin-bottom:10px">
      
    <p:growl id="growl" sticky="true" showDetail="true"/>  
  
    <p:wizard widgetVar="wiz" >  
        <p:tab id="generalTab" title="Datos Generales" >  
            <p:panel >  
                <h:messages errorClass="error"/> 
                <h:panelGrid columns="2" columnClasses="label, value" styleClass="grid">  
                    <p:outputLabel for="codigoespecimenTxt" value="Código Espécimen:" />
                    <p:inputText id="codigoespecimenTxt" value="#{especimenBean.especimen.codigoespecimen}"/> 
                    
                                 <p:outputLabel for="codigoanimalTxt" value="Especie:" />
                                 <p:selectOneMenu id="codigoanimalTxt" value="#{especimenBean.especimen.animal}" required="true">
                                       <f:selectItem itemLabel="Seleccione..." itemValue="" />
                                       <f:selectItems value="#{especimenBean.listaAnimal}" />
                                       <f:converter converterId="animalConverter" />
                                  </p:selectOneMenu>
                    
                                  <p:outputLabel for="codigorecoleccionTxt" value="Fecha de Recolección:" />
                                  <p:selectOneMenu id="codigorecoleccionTxt" value="#{especimenBean.especimen.recoleccion}" required="true">
                                        <f:selectItem itemLabel="Seleccione..." itemValue="" />
                                        <f:selectItems value="#{especimenBean.listaRecoleccion}" />
                                        <f:converter converterId="recoleccionConverter" />
                                   </p:selectOneMenu>
                    
                                   <p:outputLabel for="numeromuestraTxt" value="Número de Muestras:" />
                                   <p:inputText id="numeromuestraTxt" value="#{especimenBean.especimen.numeromuestras}" required="true"/> 
                                   
                                   <p:outputLabel for="tipoconservacionTxt" value="Tipo Conservación:" style="width:160px; font-size: 100%"/>
                                   <p:selectOneMenu id="tipoconservacionTxt" value="#{especimenBean.especimen.tipoconservacion}" required="true">
                                        <f:selectItem itemLabel="Seleccione..." itemValue="" />
                                        <f:selectItem itemLabel="Seco" itemValue="Seco" />
                                        <f:selectItem itemLabel="Alcohol" itemValue="Alcohol" />
                                    </p:selectOneMenu>
                    
                                    <p:outputLabel for="determinoTxt" value="Determino:" />
                                    <p:inputText id="determinoTxt" value="#{especimenBean.especimen.determino}" required="true"/> 
                    
                                    <p:outputLabel for="confirmoTxt" value="Confirmo:" />
                                    <p:inputText id="confirmoTxt" value="#{especimenBean.especimen.confirmo}" required="true"/> 
                                    
                                    <h:outputText value="Tipo de Espécimen: " />  
                                    <p:selectOneRadio id="tipoespecimenRbt" value="#{especimenBean.especimen.tipoespecimen}">  
                                        <f:selectItem itemLabel="Terrestre" itemValue="T" />  
                                        <f:selectItem itemLabel="Acuatico" itemValue="A" />  
                                    </p:selectOneRadio> 
                                </h:panelGrid>  
                            </p:panel>  
                        </p:tab>  
                        <p:tab id="fisicoTab" title="Fisico">  
                            <p:panel>  
                                <h:messages errorClass="error"/>  
                                <h:panelGrid columns="2" columnClasses="label, value">  
                                      <p:outputLabel for="pesoTxt" value="Peso:" />
                                      <p:inputText id="pesoTxt" value="#{especimenBean.especimen.peso}" required="true"/> 
                  
                                      <p:outputLabel for="sexoTxt" value="Sexo:" style="width:160px; font-size: 100%"/>
                                      <p:selectOneMenu id="sexoTxt" value="#{especimenBean.especimen.sexo}" required="true">
                                         <f:selectItem itemLabel="Seleccione..." itemValue="" />
                                         <f:selectItem itemLabel="Femenino" itemValue="F" />
                                         <f:selectItem itemLabel="Masculino" itemValue="M" />
                                         <f:selectItem itemLabel="Hemafrodita" itemValue="H" />
                                      </p:selectOneMenu>
                                        
                                      <p:outputLabel for="madurezTxt" value="Madurez:" style="width:160px; font-size: 100%"/>
                                      <p:selectOneMenu id="madurezTxt" value="#{especimenBean.especimen.madurez}" required="true">
                                        <f:selectItem itemLabel="Seleccione..." itemValue="" />
                                        <f:selectItem itemLabel="Huevo" itemValue="Huevo" />
                                        <f:selectItem itemLabel="Larva" itemValue="Larva" />
                                        <f:selectItem itemLabel="Feto" itemValue="Feto" />
                                        <f:selectItem itemLabel="Juvenil" itemValue="Juvenil" />
                                        <f:selectItem itemLabel="Adulto" itemValue="Adulto" />
                                     </p:selectOneMenu>
                                      
                                     <p:outputLabel for="longitudTxt" value="Longitud:" />
                                     <p:inputText id="longitudTxt" value="#{especimenBean.especimen.longitud}" required="true"/>
                                     
                                     <p:outputLabel for="diametroTxt" value="Diametro:" />
                                     <p:inputText id="diametroTxt" value="#{especimenBean.especimen.diametro}" required="true"/>
                                     
                                     <p:outputLabel for="alturaTxt" value="Altura:" />
                                     <p:inputText id="alturaTxt" value="#{especimenBean.especimen.altura}" required="true"/>
                                     
                                      <p:outputLabel for="texturaTxt" value="Textura:" style="width:160px; font-size: 100%"/>
                                      <p:selectOneMenu id="texturaTxt" value="#{especimenBean.especimen.textura}" required="true">
                                         <f:selectItem itemLabel="Seleccione..." itemValue="" />
                                         <f:selectItem itemLabel="Suave" itemValue="Suave" />
                                      </p:selectOneMenu>
                                      
                                     <p:outputLabel for="coloracionTxt" value="Coloración:" />
                                     <p:inputText id="coloracionTxt" value="#{especimenBean.especimen.coloracion}" required="true"/>
                                     </h:panelGrid>  
                            </p:panel>  
                        </p:tab>
          
                        <p:tab id="descripcionTab" title="Descripción">  
                            <p:panel>  
                                <h:messages errorClass="error"/>  
                                <h:panelGrid columns="2" columnClasses="label, value">  
                                     
                                      <p:outputLabel for="descripciontaxonomicaTxt" value="Descripción Taxonomica:" />
                                      <p:inputText id="descripciontaxonomicaTxt" value="#{especimenBean.especimen.descripciontaxonomica}" /> 
                                     
                                       <p:outputLabel for="observacionTxt" value="Observación:" />
                                      <p:inputText id="observacionTxt" value="#{especimenBean.especimen.observaciones}" /> 
                                     
                                      <p:outputLabel for="estatuslocalTxt" value="Estatus Local:" />
                                      <p:inputText id="estatuslocalTxt" value="#{especimenBean.especimen.estatuslocal}" />
                                      
                                      <p:outputLabel for="estadomuestraTxt" value="Estado Muestra:" />
                                      <p:inputText id="estadomuestraTxt" value="#{especimenBean.especimen.estadomuestra}" />
                                      
                                      <p:outputLabel for="habitatTxt" value="Habitat:" />
                                      <p:inputText id="habitatTxt" value="#{especimenBean.especimen.habitat}" />
                                </h:panelGrid>  
                            </p:panel>  
                        </p:tab> 


                        <p:tab id="acuaticoTab" title="Acuatico">  
                            <p:panel>  
                                <h:messages errorClass="error"/>  
                                <h:panelGrid columns="2" columnClasses="label, value">  
                                      <p:outputLabel for="phTxt" value="Peso:" />
                                      <p:inputText id="phTxt" value="#{especimenBean.acuatico.ph}" /> 
                                                                             
                                      <p:outputLabel for="profundidadTxt" value="Profundidad:" />
                                      <p:inputText id="profundidadTxt" value="#{especimenBean.acuatico.profundidad}" /> 
                                     
                                      <p:outputLabel for="codicionmareaTxt" value="Condición Marea:" />
                                      <p:inputText id="codicionmareaTxt" value="#{especimenBean.acuatico.condicionmarea}" />
                                      
                                      <p:outputLabel for="salinidadTxt" value="Salinidad:" />
                                      <p:inputText id="salinidadTxt" value="#{especimenBean.acuatico.salinidad}" />
                                      
                                      <p:outputLabel for="hospederoTxt" value="Hospedero:" />
                                      <p:inputText id="hospederoTxt" value="#{especimenBean.acuatico.hospedero}" />
                                      
                                      <p:commandButton id="guardaracuaticoBtn" actionListener="#{especimenBean.agregarEspecimen}" 
                                                        oncomplete=":guardarAnimalWgt.hide()" update=":tablaEspecimenFrm:tablaEspecimen" 
                                                        title="Guardar" value="Guardar"/>
                                       <p:commandButton id="cancelaracuaticoBtn"  type="button" onclick="guardarEspecimenWgt.hide()" 
                                                        value="Cancelar" title="Cancelar"/>
               
                                </h:panelGrid>  
                            </p:panel>  
                        </p:tab> 
        
                        <p:tab id="terrestreTab" title="Terrestre">  
                            <p:panel>  
                                <h:messages errorClass="error"/>  
                                <h:panelGrid columns="2" columnClasses="label, value">  
                                      <p:outputLabel for="tiposustratoTxt" value="Tipo sustrato:" />
                                      <p:inputText id="tiposustratoTxt" value="#{especimenBean.terrestre.tiposustrato}" /> 
                                                                             
                                      <p:outputLabel for="altitudTxt" value="Altitud:" />
                                      <p:inputText id="altitudTxt" value="#{especimenBean.terrestre.altitud}" /> 
                                     
                                      <p:outputLabel for="hospederoterrestreTxt" value="Hospedero:" />
                                      <p:inputText id="hospederoterrestreTxt" value="#{especimenBean.terrestre.hospedero}" />
                                      
                                      <p:commandButton id="guardarterrestreBtn" actionListener="#{especimenBean.agregarEspecimen}" 
                                                        oncomplete=":guardarAnimalWgt.hide()" update=":tablaEspecimenFrm:tablaEspecimen" 
                                                        title="Guardar" value="Guardar"/>
                                       <p:commandButton id="cancelarterrestreBtn"  type="button" onclick="guardarEspecimenWgt.hide()" 
                                                        value="Cancelar" title="Cancelar"/>
               
                                </h:panelGrid>  
                                
                            </p:panel>  
                        </p:tab> 
                    </p:wizard>  
               </h:panelGrid>
                              
            </h:form>
        </p:dialog>
    </ui:define>
    
</ui:composition>